[C] Arquivos e Stat
Publicado por Enzo de Brito Ferber (última atualização em 23/09/2010)
[ Hits: 8.569 ]
Homepage: http://www.maximasonorizacao.com.br
Programa simples mostrando como usar a função stat(), e como manipular aquivos de uma forma bem simples. Ponteiros também são usados.
Baixe:
$ tar -xzvf loadfile.tar.gz
$ cd loadfile
$ ./loadfile text
;)
[]'s
/* loadfile.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
int main ( int argc, char *argv[] )
{
char *fullfile, *p, *p2, c ;
struct stat fileinfo;
FILE *openfile;
if ( argc < 2 )
{
printf ( "[*] Usage: %s <file>\n", argv[0] );
exit ( EXIT_FAILURE );
}
/* read-binary permission */
openfile = fopen ( argv[1], "rb" );
if ( !openfile )
{
printf ( "[*] Can't open file %s\n", argv[1] );
exit ( EXIT_FAILURE );
}
/* file info for file size */
if ( stat ( argv[1], &fileinfo ) == -1 )
{
printf ( "[*] Can't stat() file %s\n", argv[1] );
exit ( EXIT_FAILURE );
}
/* alloc memory for the pointer
*
* fileinfo.st_size = size of the file in bytes
*/
fullfile = ( char * ) malloc ( fileinfo.st_size * sizeof ( char ));
if ( !fullfile )
{
printf ( "[*] Can't malloc() %d bytes\n", fileinfo.st_size );
exit ( EXIT_FAILURE );
}
/* To view all the resources of the stat structure:
*
* $ man stat
*/
printf ( "File info:\n" );
printf ( "UID : %d\n", fileinfo.st_uid );
printf ( "GID : %d\n", fileinfo.st_gid );
printf ( "Size: %d bytes\n", fileinfo.st_size );
printf ( "Mode: %8.8x\n", fileinfo.st_mode );
/* reference pointer */
p = fullfile;
while ( 1 )
{
if ( feof ( openfile )) break;
fscanf ( openfile, "%c", &(*(p++)) );
}
/* print file */
p2 = fullfile;
while ( fullfile < p ) putchar ( *(fullfile++) );
/* put back in place what you use */
free ( p2 );
fclose ( openfile );
return 0;
}
Justificador de texto em 80 colunas
Leitura de arquivo texto separando as colunas
Transformando uma sequencia de binário em executável
Listar arquivos e diretórios com suas propriedades
Nenhum comentário foi encontrado.
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
(CLIPPER) Rodando o mesmo código tanto no Windows quanto no Linux (0)
Compilando o gcc-g++ 15.2[AJUDA] (10)
o que é esta mensagem? relatorios do sistema (5)









